package com.sgs.carbon.starter.security.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.Duration;

/**
 * Security 属性配置类
 *
 * @author Dave Liu
 * @date 2021-10-02
 */
@Data
@Validated
@ConfigurationProperties(prefix = "carbon.security")
public class MySecurityProperties {

    /**
     * HTTP 请求时, 访问令牌的请求 Header
     */
    @NotEmpty(message = "Token Header 不能为空")
    private String tokenHeader;

    /**
     * Token 过期时间
     */
    @NotNull(message = "Token 过期时间不能为空")
    private Duration tokenTimeout;

    /**
     * Token 秘钥
     */
    @NotEmpty(message = "Token 秘钥不能为空")
    private String tokenSecret;

    /**
     * Session 过期时间
     *
     * 当 User 用户超过当前时间未操作, 则 Session 会过期
     */
    @NotNull(message = "Session 过期时间不能为空")
    private Duration sessionTimeout;

}
